workspace: Prevent overlapping windows when scaling to fit the screen
The previous code was applying the per row scaling factor of the current
row to the cumulative sum of all previous rows when calculating the y
position of a row. This resulted in the row being shifted up so it would
overlap other windows when the previous rows were not using the same
scaling as the current one.
Also the previous code was not considering that the spacing does not get
scaled when calculating the scaling factor. This is wrong as well and
could result in the overview overlapping the workspace switcher in
situations with lots of windows open.
This fix gives each row the appropriate height according to its scaling
factor and then ensures that the grid remains vertically centered after
losing some of its height.
Florian Müllner [Fri, 27 Feb 2015 18:34:45 +0000 (19:34 +0100)]
runDialog: Disable restart command on wayland
Clients can be expected to deal with the WM going away temporarily,
but not the display server - so when running as wayland compositor,
a restart is generally a fancy way of killing the user session, and
there's little we can do about it except for preventing the user to
shoot herself in the foot by throwing an error.
Florian Müllner [Tue, 3 Mar 2015 03:37:49 +0000 (04:37 +0100)]
calendar: Allow keynav to day headers and week numbers
While those elements cannot be activated, they still provide useful
information to screen readers, so include them in the focus chain.
For the same purpose, set a more verbose accessible name, given that
it is not bound by the same space constraints as the visible label.
Florian Müllner [Tue, 3 Mar 2015 01:04:37 +0000 (02:04 +0100)]
calendar: Respect session mode for section visibility
It doesn't make much sense to show a section if it must remain empty
due to the session mode - there won't be any events if the session
mode disallows events, or notifications if those are disallowed. So
take the session mode into account and update the sections' visibility
accordingly.
Florian Müllner [Tue, 3 Mar 2015 00:27:43 +0000 (01:27 +0100)]
dateMenu: Hide displays section when disabled by session mode
We currently show the world clocks section unconditionally, even when
the session mode disallows launching the Clocks app to configure the
displayed clocks. This does not make sense, so hide the entire section
when the session mode disallows settings.
Florian Müllner [Thu, 26 Feb 2015 15:52:12 +0000 (16:52 +0100)]
legacyTray: Add a hideable tray for legacy status icons
Commit 5a8923ef95a2 removed support for legacy status icons from
the notification system, as we no longer want them to appear as
notifications. As we are unfortunately not quite at a point where
we can remove all support for them for good, so we now need an
alternative place to put them. Add a small dedicated tray at the
bottom which appears when any legacy status icons are active. By
default it is almost completely hidden to not interfere with the
user's windows, but can be expanded on demand to interact with
the icons.
Florian Müllner [Tue, 3 Mar 2015 14:03:35 +0000 (15:03 +0100)]
util: Filter out message context of untranslated strings
Commit 5a47ad837b changed the definition of NC_() to include the
message context, so that gettext can correctly disambiguate strings
like "S". However this does only work when gettext actually returns
a translation from the catalogue; if the string is not found, we
need to strip the context again to not have it show up in the UI.
polari is the GNOME app for IRC, empathy is for everything else
So prefer polari to empathy for IRC channels. We don't need
to check that either exists (even though polari is not a core
app) because mission control tries every handler if the preferred
one fails.
Depends on bug 745418 for polari to be mission control activatable.
Make sure the message list section is set to the current date
when opening the menu, otherwise the calendar might skip
the selected-date-changed event (because the day did not change)
which would leave the message list with an uninitialized date.
Rui Matos [Thu, 26 Feb 2015 16:47:37 +0000 (17:47 +0100)]
Revert "workspace: Grab the key focus when hovering over a window"
Turns out this makes interaction with the OSK or candidate popups
using a mouse basically impossible since they get dismissed when the
key focus is captured by a window in the overview.
Florian Müllner [Fri, 27 Feb 2015 14:10:11 +0000 (15:10 +0100)]
calendar: Allow to dismiss messages with delete
Messages can be dismissed using a pointer device by clicking the
close button, there's no reason to not make the same action
available via keyboard as well. Delete looks like an obvious
choice ...
Florian Müllner [Wed, 25 Feb 2015 15:42:47 +0000 (16:42 +0100)]
data: Change default shortcut for opening the message list
With the message tray no longer being a distinctive UI element,
the existing <super>m shortcut for viewing the notification list
is no longer mnemonic. It is also less convenient as it requires
both hands with most keyboards. So make <super>v the new default
to _view_ notifications, which matches the corresponding Windows
default.
The previous default is kept as secondary shortcut to ease the
transition.
Florian Müllner [Fri, 27 Feb 2015 01:09:02 +0000 (02:09 +0100)]
dash: Fix leaking signal connections
The overview has a longer life-time than dash items, so we are
leaking a signal connection each time an item is destroyed.
Spotted by Michele (<micxgx@gmail.com>)
Florian Müllner [Sat, 21 Feb 2015 08:05:58 +0000 (09:05 +0100)]
messageTray: Hide from picks during DND operations
As it is impossible to interact with notification banners while a DND
operation is ongoing, we can temporarily hide the banner container from
picks so that DND works as expected even while a banner is showing.
Florian Müllner [Wed, 25 Feb 2015 16:43:54 +0000 (17:43 +0100)]
messageTray: Take over trayBox from LayoutManager
Since commit e189a34, the trayBox uses a Contraint to cover the primary
monitor's work area. This allows banners to be clipped so they don't
leak into monitors above the primary one during animations. However even
without being reactive, the trayBox now interferes with operations like
Looking Glass' object picker and overview DND.
With the trayBox no longer being positioned manually, there's no strong
reason to keep it in LayoutManager, and handling it in MessageTray allows
to hide the actor while no banner is showing, which helps with the issue
outlined above.
Florian Müllner [Wed, 25 Feb 2015 17:08:53 +0000 (18:08 +0100)]
messageTray: Fix actor visibility
The actor is supposed to be hidden while no notification banner
is displayed, and in addition to that when banners are temporarily
blocked (because the calendar is open). However the current code
always shows the actor when banners are not blocked, fix that.
Florian Müllner [Thu, 26 Feb 2015 22:31:46 +0000 (23:31 +0100)]
screenShield: Do not wake up screen after adding hidden source
The screen should be woken up when a new notification is shown on
the lock screen, but not when a notification arrives while disabled.
Add a missing condition to fix.
David Liang [Thu, 26 Feb 2015 20:40:56 +0000 (15:40 -0500)]
gdm: prevent nextSignalId from being connected multiply times
The problem is caused by '_askForUsernameAndBeginVerification' being
called multiply times. So when we click 'next', the old connected
function will also be executed.
Florian Müllner [Thu, 26 Feb 2015 00:05:29 +0000 (01:05 +0100)]
Drop MESSAGE_TRAY action mode
The mode is never set after the removal of the bottom tray, so it
no longer makes sense to pass it to allowKeybinding(). We can also
safely remove it from the ActionModes flags altogether without
requiring a synchronized update with gnome-settings-daemon, as
the latter never used any flag value above LOGIN_SCREEN.
Commit 1c1f63a7d7a5f0be5a796679d029a6b0c600b838 changed the shadow
pipeline to use cogl_framebuffer_ortographic() instead of cogl_ortho(),
but the two functions take their arguments in a different order.
Fixes graphical corruption for text shadows in the login screen.
Florian Müllner [Mon, 23 Feb 2015 19:07:04 +0000 (20:07 +0100)]
popupMenu: Use TOPBAR_POPUP action mode for all menus
When it comes to keybindings or gestures, there's not really a good
reason why popups associated with the top bar should behave differently
from any other shell menus. Just set the action mode generically for
all menus, so actions like screenshots or media-keys start working
with menus like the background- or app launcher context menus.
Florian Müllner [Sat, 21 Feb 2015 19:10:41 +0000 (20:10 +0100)]
calendar: Fix message markup getting lost
We reuse the old body text on useMarkup changes and for expanded
labels. However just taking it from the label actor does not work
when markup is used, as once applied it will be stripped from
ClutterText:text.
So to preserve markup, keep our own copy of the original string
around.
Florian Müllner [Sat, 21 Feb 2015 18:08:27 +0000 (19:08 +0100)]
calendar: Fix quoting issues in notification titles
Markup in notification titles is not support (and never has been).
Therefore the text is run through g_markup_escape_text(), and as
a result we do have to use markup internally to correctly show
legal-but-escape characters like '&' or '"'.
Theme: Too many values for border-radius property.
GNOME Shell throws the following warning message:
'St-WARNING **: Too many values for border-radius property.'
Was fixed with just remove the last '0' on the 'border-radius'
property in the '.tile-preview-left.on-primary' class on both files:
gnome-shell.css and gnome-shell-high-contrast.css.
Florian Müllner [Sat, 21 Feb 2015 08:59:24 +0000 (09:59 +0100)]
dateMenu: Update message indicator on queue changes
The message indicator conveys that the message list contains unseen
messages that will not be shown as banner. So its visibility depends
on two factors: the number of unseen messages, and the number of
messages waiting in the queue to be shown as banner. As we currently
only update the visibility on changes to the former, the indicator is
not always accurate - for instance sources notify count changes before
passing on a notification to the message tray for display.
To fix, add a signal to the message tray to notify when the queue
changes and use it to update the indicator's visibility.